<?PHP
ini_set('error_reporting', E_ALL);


$SECURITE="OK";  
$CONF_chemin="./";
include('../config.php');  // Config de Moodle
include("includes/config/config.php"); // Config du module
include("includes/includes.php"); // Config du module

// Chemin des fichiers APOGEE à importer
$chemin="/var/www/moodledata/depot/";

// Les fichiers sont les suivants en y ajoutant l'extension ".txt"
// Les tables portent le même nom avec le préfixe matoo
$fichiers[]="aua_convention";
$fichiers[]="aua_element";
$fichiers[]="aua_etape";
$fichiers[]="aua_etudiant";
$fichiers[]="aua_etudiant_element";
$fichiers[]="aua_etudiant_etape";
$fichiers[]="aua_personnel";
$fichiers[]="aua_personnel_etape";
$fichiers[]="aua_personnel_population";
$fichiers[]="aua_personnel_structure";
$fichiers[]="aua_population";
$fichiers[]="aua_secteur_sise";
$fichiers[]="aua_structure";
$fichiers[]="aua_temporaire";


// Sur le serveur de test on track tout 
if ($CFG->wwwroot!=$CONF_serveur_prod)
{
 $CONF_track_all=true;
}

$domaine=3; // Univ-angers.fr
$track="";                     
$type="3"; // Etapes

$liste_correspondances = liste_correspondances($domaine, $type, '', 0, -1, '', '' , '', '', 'id DESC');
foreach ($liste_correspondances as $correspondance)
{
 // la correspondance en question :
 $correspondance=new correspondances ($correspondance);
 
 if (!isset($etape[$correspondance->code])) // A-t-on déjà traiter ce code étape ?
 {
    $track.="\n".$correspondance->code;
    $ldaps=ldap_recherche($CONF_ldap_champ['Etape'],$correspondance->code); // Recherche des étudiants de l'étape
    
    if (!isset($ldaps['erreur']))
    {
     inscrire($ldaps);
     $track.= " : ".(count($ldaps)-1)." Etudiants";
    }
    else
    {
     $track.= " : PERSONNE DANS LE LDAP ?";
    }
 }
 $etape[$correspondance->code]=1; // On a traité cette étape
}
                                       
$type="2"; // Elements
$liste_correspondances = liste_correspondances($domaine, $type, '', 0, -1, '', '' , '', '', 'id DESC');
foreach ($liste_correspondances as $correspondance)
{
 // la correspondance en question :
 $correspondance=new correspondances ($correspondance);
 
 if (!isset($element[$correspondance->code])) // A-t-on déjà traiter ce code étape ?
 {
    $track.="\n".$correspondance->code;
    $ldaps=ldap_recherche($CONF_ldap_champ['Element'],$correspondance->code); // Recherche des étudiants de l'étape
    
    if (!isset($ldaps['erreur']))
    {
     inscrire($ldaps);
     $track.= " : ".(count($ldaps)-1)." Etudiants";
    }
    else
    {
     $track.= " : PERSONNE DANS LE LDAP ?";
    }
 }
 $element[$correspondance->code]=1; // On a traité cette étape

}

// IMPORTATION D'APOGEE

// Table existante non mise à jour automatiquement
// ".$CONF_bdd_prefixe."aua_typ_dip

$track_import="\n\n Importation";
foreach ($fichiers as $fichier)
{
 
 // Parcourons le fichier et injectons le SQL
 $file=$chemin.$fichier.".txt";
 $handle = @fopen($file, "r");
 if (!$handle) {$track_import.="\nOUVERTURE DU FICHIER IMPOSSIBLE : {$file}";}
 else
 {
   // Le fichier semble être présent, vidons la table
   $track_import.="\n ".$fichier." (".date("j/m/Y à H:i", filemtime($file)).") : ";
   $sql="TRUNCATE TABLE `".$CONF_bdd_prefixe.$fichier."`";
   $result=mysql_query($sql);
   if (!$result) {$track_import.="ERREUR POUR VIDER LA TABLE";}else{$track_import.="Vidage OK";}
 
     $cpt=0; // Compteur de ligne
    while (!feof($handle)) {
        $ligne = fgets($handle, 4096);
        if (strlen($ligne)>10) // Si la ligne n'est pas vide
        {
         $ligne=utf8_encode($ligne);
         // Injection de la ligne
         $query=mysql_query($ligne);
         if ($query)
         {$cpt++;}else{$track_import.="\nERREUR LIGNE $cpt : $ligne";}
        }
    }
    fclose($handle);
    $track_import.=" - $cpt lignes importées";
 } 
}
$track_import.="\n\nN'oubliez pas de mettre à jour le contenu 1 à 2 fois par an de la table aua_typ_dip";

$message="Serveur : ".$CFG->wwwroot."\n".$track_import."\n\n Traité pour les étudiants des étapes et éléments suivants : \n".$track;
mail($CONF_mail_admin, 'Inscription automatique de nuit et import des bases apogee', $message);
// FIN

function inscrire($ldaps)
{
    global $CONF_domaine, $CONF_active, $CONF_track_all;
    $type_inscription="Tache de nuit"; // Pour le fichier main.php lors du tracking

    foreach($ldaps as $ldap)
    {
       $user_inscription=ldap_recup_infos($ldap);
       $user_inscription['Domaine']=$CONF_domaine;
    	
    	// L'utilisateur est-il déjà présent dans moodle ?
    	$user_create=false;
    	if (!moodle_get_complete_user_data($user_inscription['Login']))
    	{   
    			if (moodle_create_user($user_inscription))
    			{
    				$user_create=true;
    			}
    	}
    	else
    	{
    	 $user_create=true;
    	}
    	
    	if (isset($user_inscription) AND !isset($user_inscription['erreur']) AND $user_create)
    	{
    	  $track_inscrit= "";
    		include("main.php");
    	}
    }
}




?>
